package RRHH_Modelo;

import Conexion.Conexion;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class RHH_ACTIVIDAD_CARGO {

    private int ID;
    private int ID_ACTIVIDAD;
    private int ID_CARGO;
    private Date HORA_INICIO;
    private Date HORA_FIN;
    private Conexion con = null;

    public RHH_ACTIVIDAD_CARGO(Conexion con) {
        this.con = con;
    }

    public RHH_ACTIVIDAD_CARGO(int ID_ACTIVIDAD, int ID_CARGO, Date HORA_INICIO, Date HORA_FIN) {
        this.ID_ACTIVIDAD = ID_ACTIVIDAD;
        this.ID_CARGO = ID_CARGO;
        this.HORA_INICIO = HORA_INICIO;
        this.HORA_FIN = HORA_FIN;
    }

    public int Insertar() throws SQLException {
        String consulta = "insert into BROKER.RHH_ACTIVIDAD_CARGO (ID, ID_ACTIVIDAD, ID_CARGO, HORA_INICIO, HORA_FIN) VALUES (0," + ID_ACTIVIDAD + "," + ID_CARGO + ",to_date('" + getHORA_INICIO() + "','DD/MM/YYYY HH24:MI:SS'), to_date('" + getHORA_FIN() + "','DD/MM/YYYY HH24:MI:SS'))";
        con.EjecutarSentencia(consulta);       
        consulta = "select BROKER.RHH_ACTIVIDAD_CARGO_SEQ.currval as ID from dual";
        ResultSet rs = con.EjecutarConsulta(consulta);
        rs.next();
        return rs.getInt("ID");    
    }
    
    public boolean Eliminar(int id) throws SQLException {
        String consulta = "delete from BROKER.RHH_ACTIVIDAD_CARGO where ID = "+id;
        con.EjecutarSentencia(consulta);
        return true;
    }
    
    public boolean EliminarxFecha() throws SQLException {
        String consulta = "delete from BROKER.RHH_ACTIVIDAD_CARGO where to_date(HORA_INICIO,'DD/MM/YYYY') like to_date('"+getHORA_INICIO()+"', 'DD/MM/YYYY')";
        con.EjecutarSentencia(consulta);
        return true;
    }
    
     public boolean update(int idactividad) throws SQLException {
        String consulta = "update BROKER.RHH_ACTIVIDAD_CARGO set ID_ACTIVIDAD = "+idactividad+" where ID_CARGO = " + getID_CARGO()+" and  to_date(HORA_INICIO,'DD/MM/YYYY HH24:MI:SS') like to_date('"+getHORA_INICIO()+"', 'DD/MM/YYYY HH24:MI:SS'),  and  to_date(HORA_FIN,'DD/MM/YYYY HH24:MI:SS') like to_date('"+getHORA_FIN()+"', 'DD/MM/YYYY HH24:MI:SS')";
        con.EjecutarSentencia(consulta);
        return true;
    }

    public List<RHH_ACTIVIDAD_CARGO> Todos() throws SQLException {
        String consulta = "select * from BROKER.RHH_ACTIVIDAD_CARGO";
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<RHH_ACTIVIDAD_CARGO> lista = Cargar(rs);
        return lista;
    }
    public List<RHH_ACTIVIDAD_CARGO> Buscar(int dia,int mes, int ano, int idcargo) throws SQLException {
        String consulta = "select * from BROKER.RHH_ACTIVIDAD_CARGO where to_date(HORA_INICIO,'DD/MM/YYYY  HH24:MI:SS') like to_date('"+dia+"/"+mes+"/"+ano+"', 'DD/MM/YYYY') and ID_CARGO = "+idcargo;
        ResultSet rs = con.EjecutarConsulta(consulta);
        return Cargar(rs);
    }

    public List<RHH_ACTIVIDAD_CARGO> Cargar(ResultSet rs) throws SQLException {
        List<RHH_ACTIVIDAD_CARGO> lista = new ArrayList<RHH_ACTIVIDAD_CARGO>();
        while (rs.next()) {
            RHH_ACTIVIDAD_CARGO objeto = new RHH_ACTIVIDAD_CARGO(con);
            objeto.setID_ACTIVIDAD(rs.getInt("ID_ACTIVIDAD"));
            objeto.setID_CARGO(rs.getInt("ID_CARGO"));
            objeto.setHORA_INICIO(rs.getDate("HORA_INICIO"));
            objeto.setHORA_FIN(rs.getDate("HORA_FIN"));
            objeto.setID(rs.getInt("ID"));
            lista.add(objeto);
        }
        return lista;
    }

    public int getID() {
        return ID;
    }

    public void setID(int ID) {
        this.ID = ID;
    }

    
    
    public int getID_ACTIVIDAD() {
        return ID_ACTIVIDAD;
    }

    public void setID_ACTIVIDAD(int ID_ACTIVIDAD) {
        this.ID_ACTIVIDAD = ID_ACTIVIDAD;
    }

    public int getID_CARGO() {
        return ID_CARGO;
    }

    public void setID_CARGO(int ID_CARGO) {
        this.ID_CARGO = ID_CARGO;
    }

    public String getHORA_INICIO() {
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
        return sdf.format(HORA_INICIO);
    }
    public String getHORA_INICIOSF() {
        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
        return sdf.format(HORA_INICIO);
    }

    public void setHORA_INICIO(Date HORA_INICIO) {
        this.HORA_INICIO = HORA_INICIO;
    }
    public String getHORA_FIN() {
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
        return sdf.format(HORA_FIN);
    }
    public String getHORA_FINSF() {
        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
        return sdf.format(HORA_FIN);
    }

    public void setHORA_FIN(Date HORA_FIN) {
        this.HORA_FIN = HORA_FIN;
    }

    public Conexion getCon() {
        return this.con;
    }

    public void setCon(Conexion con) {
        this.con = con;
    }
}
